<?php
// +----------------------------------------------------------------------
// | HkCms 管理员管理
// +----------------------------------------------------------------------
// | Copyright (c) 2012-2019 http://www.hkcms.cn, All rights reserved.
// +----------------------------------------------------------------------
// | Author: 广州恒企教育科技有限公司 <admin@hkcms.cn>
// +----------------------------------------------------------------------

namespace app\admin\controller;

use common\controller\AdminBase;
use app\Admin\Service\User;

class Management extends AdminBase
{
    //管理员列表
    public function manager() 
    {
        $where = array();

        $role_id = input('get.role_id', 0, 'intval');

        if ($role_id) {

            $where['role_id'] = $role_id;

            $menuReturn = array(

                'url' => url('Rbac/rolemanage'),

                'name' => '返回角色管理',
            );

            $this->assign('menuReturn', $menuReturn);
        }

        $count = model('admin/User')->where($where)->count();

        $page = $this->page($count, 20);

        // 获取管理员列表
        $Userlist = model('admin/User')->where($where)->limit($page->firstRow . ',' . $page->listRows)->order(array('id' => 'DESC'))->select()->toarray();

        $User = new User;

        // 获取当前登录用户信息
        $User = $User->getInfo();

        $this->assign("Userlist", $Userlist);

        $this->assign("User", $User);

        $this->assign("Page", $page->show());

        return $this->fetch();
    }

    //编辑信息
    public function edit() 
    {
        $id = input('id', 0, 'intval');

        if (empty($id)) {

            $this->error("请选择需要编辑的信息！");
        }

        //判断是否修改本人，在此方法，不能修改本人相关信息
        if (User::getInstance()->id == $id) {

            $this->error("修改当前登录用户信息请进入[我的面板]中进行修改！");
        }

        if (1 == $id) {

            $this->error("该帐号不允许修改！");
        }

        if ( request()->isPost() ) {

            if (false !== model('admin/User')->amendManager($_POST)) {

                $this->success("更新成功！", url("Management/manager"));

            } else {

                $error = model('admin/User')->getError();

                $this->error($error ? $error : '修改失败！'); 
            }

        }


        $data = model('admin/User')->where("id",$id)->find();

        if (empty($data)) {

            $this->error('该信息不存在！');
        }

        $this->assign("role", model('admin/Role')->selectHtmlOption($data['role_id'], 'name="role_id"'));

        $this->assign("data", $data);

        return $this->fetch();
        
    }

    //添加管理员
    public function adminadd() 
    {

        if ( request()->isPost() ) {

            if (model('admin/User')->createManager($_POST)) {

                $this->success("添加管理员成功！", url('Management/manager'));

            } else {

                $error = model('admin/User')->getError();

                $this->error($error ? $error : '添加失败！');
            }
        }

        $this->assign("role", model('admin/Role')->selectHtmlOption(0, 'name="role_id"'));

        return $this->fetch();
    }

    //管理员删除
    public function delete() 
    {

        $id = input('id');

        if ( empty($id) ) {

            $this->error("没有指定删除对象！");
        }

        if ( (int) $id == User::getInstance()->id) {

            $this->error("你不能删除你自己！");
        }
        //执行删除
        if ( model('admin/User')->deleteUser($id) ) {

            $this->success("删除成功！");

        } else {

            $this->error('删除失败！');
        }
    }

}
